package com.itkjb.leisurely.center.sys.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.itkjb.leisurely.center.sys.mapper.SysMenuMapper;
import com.itkjb.leisurely.center.sys.model.SysMenuModel;
import com.itkjb.leisurely.center.sys.service.ISysMenuService;
import com.itkjb.leisurely.core.base.service.impl.TierBaseServiceImpl;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * <p>
 * 系统菜单资源目录 服务实现类
 * </p>
 *
 * @author itkjb_gen
 * @since itkjb_gen
 */
@Service
public class SysMenuServiceImpl extends TierBaseServiceImpl<SysMenuMapper, SysMenuModel> implements ISysMenuService {

    @Override
    public List<SysMenuModel> findMenuPermissionByRoleId(List<String> roleIds){
        if(roleIds !=null && roleIds.size()>0){
            return this.baseMapper.findMenuPermissionByRoleId(roleIds);
        }
        return null;
    }
    /**
     * wrapper 组装器，构造条件查询
     * @author itkjb_gen
     * @date  itkjb_gen
     * @param wrapper
     * @param model 条件
     **/
    @Override
    protected void assembleWrapper(QueryWrapper<SysMenuModel> wrapper, SysMenuModel model) {
        /*wrapper.lambda().eq(model.getStatus()!=null, SysMenuModel::getStatus,model.getStatus() );
        wrapper.lambda().eq(model.getIsDel()!=null && model.getIsDel() == false, SysMenuModel::getIsDel,model.getIsDel() );
        if(model.getMenuType() != null){
            List<Integer> selectedStatus = StatusUtils.getSelectedStatus(model.getMenuType());
            wrapper.lambda().in(SysMenuModel::getMenuType, selectedStatus);
        }
        wrapper.lambda().like(StringUtils.isNotBlank(model.getTitle()), SysMenuModel::getTitle , model.getTitle());
        wrapper.lambda().eq(model.getParentId()!=null,SysMenuModel::getParentId,model.getParentId());
    */
    }

    @Override
    protected void buildListSelectColumns(QueryWrapper<SysMenuModel> wrapper, SysMenuModel model) {
        wrapper.lambda().select(
                // id
                SysMenuModel::getId
//                // 父级id
//                SysMenuModel::getParentId,
//                // 权限代码，尽可能保证唯一性
//                SysMenuModel::getPermission,
//                // 类型   1：目录   2：菜单   3：按钮
//                SysMenuModel::getMenuType,
//                // 系统编号
//                SysMenuModel::getSysCode,
//                // 是否是不可用的，0 不可用，1可用
//                SysMenuModel::getStatus,
//                // 系统id
//                SysMenuModel::getTopId,
//                // 部门id
//                SysMenuModel::getDepId
        );
    }


}
